<script>
import config from './config'
import store from '@/store'
import {
	getToken
} from '@/utils/auth'

import storeApi from "@/api/system/store.js"
// #ifndef MP-WEIXIN
import qly from "@/qly"
// #endif

export default {
	onLaunch: function () {
		this.initApp()
		// #ifdef MP-WEIXIN
		this.autoUpdate() //处理小程序更新 
		// #endif
	},
	onHide() {
		this.globalData.shopSocket = false
	},
	onExit() {
		qly.isSocket = false
		clearInterval(qly.socketTimer)
		qly.appSocketFun.close()
	},
	onShow: function (options) {
		let referrerInfo = options.referrerInfo || null;
		console.log("🚀🚀🚀 ~ referrerInfo:", referrerInfo)
		if (referrerInfo.extraData) {
			let extraData = referrerInfo.extraData;
			let orderId = extraData.orderId || null; //订单ID
			if (orderId) {
				this.$Api.index.orderCallback(extraData).then((res) => {
					if (res.code === 200) {
						this.$util.Tips({
							title: "支付成功！",
						});
					} else {
						this.$util.Tips({
							title: res.msg,
						});
					}
				});
			}
			uni.hideLoading();
		}
		// #ifdef H5
		uni.getSystemInfo({
			success(e) {
				/* 窗口宽度大于420px且不在PC页面且不在移动设备时跳转至 PC.html 页面 */
				if (
					e.windowWidth > 420 &&
					!window.top.isPC &&
					!/iOS|Android/i.test(e.system)
				) {
					// window.location.pathname = 'https://java.crmeb.net/';
					/* 若你的项目未设置根目录（默认为 / 时），则使用下方代码 */
					window.location.pathname = "/static/html/pc.html";
				}
			},
		});
		// #endif
	},
	methods: {
		// 初始化应用
		initApp() {
			// 初始化应用配置
			this.initConfig()
			// 检查用户登录状态
			//#ifdef H5
			this.checkLogin()
			//#endif
			if (getToken()) {
				store.dispatch('GetInfo')
				// #ifndef MP-WEIXIN
				// 初始化聊天列表
				qly.chatListFun.getList()

				// 获取未读消息数
				qly.chatListFun.getNoMsg()

				qly.isSocket = true

				qly.appSocketFun.socketInit()
				// #endif
			}
			// #ifndef MP-WEIXIN
			// 监听网络变化
			this.handleNetData()
			// #endif
		},
		handleNetData() {
			uni.onNetworkStatusChange(function (res) {
				qly.networkStatus = res.isConnected
			});
		},
		initConfig() {
			this.globalData.config = config
		},
		checkLogin() {
			if (!getToken()) {
				this.$tab.reLaunch('/pages/login')
			}
		},
		/***
		 * 小程序更新机制处理
		 */
		autoUpdate() {
			let that = this
			//获取小程序更新机制兼容
			if (wx.canIUse('getUpdateManager')) {
				//获取全局唯一的版本更新管理器，用于管理小程序更新
				let updateManager = wx.getUpdateManager()
				//1.检查小程序是否有新版本发布
				updateManager.onCheckForUpdate(function (res) {
					//请求完新版本信息的回调
					if (res.hasUpdate) {
						//2.小程序有新版本，则静默下载新版本，做好更新准备
						updateManager.onUpdateReady(function () {
							wx.showModal({
								title: '更新提示',
								content: '新版本已经准备好，是否重启应用？',
								success: function (res) {
									if (res.confirm) {
										//3.新的版本已经下载好，调用 applyUpdate 应用新版本并重启
										updateManager.applyUpdate()
									} else if (res.cancel) {
										//如果需要强制更新，则给出二次弹窗；如果不需要，则这里的代码都可以删除
										wx.showModal({
											title: '温馨提示~',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问哦',
											success: function (
												resc) {
												that.autoUpdate()
												return
												//第二次提示后，强制更新
												if (resc
													.confirm) {
													//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
													updateManager
														.applyUpdate()
												} else if (resc
													.cancek) {
													//重新回到版本更新提示
													that.autoUpdate()
												}
											}
										})
									}
								}
							})
						})
						updateManager.onUpdateFailed(function () {
							//新的版本下载失败
							wx.showModal({
								title: '已经有新版本了哟~',
								content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
							})
						})
					}
				})
			} else {
				//如果希望用户在最新版本的客户端上体验您的小程序，可以这样提示
				wx.showModal({
					title: '提示',
					content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试',
				})
			}
		}
	}
}
</script>

<style lang="scss">
@import '@/static/scss/index.scss';
@import "@/uni_modules/uview-ui/index.scss";

span {
	text-wrap: wrap !important;
}

.sprice {
	color: #E3392A;
}

.old-price {
	text-decoration: line-through;
}
</style>